Various forms of storage systems are used today. These forms include direct attached storage (DAS) network attached storage (NAS) systems, storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up data and others. A storage system typically includes at least one computing system executing a storage operating system for storing and retrieving data on behalf of one or more client computing systems (“clients”). The storage operating system stores and manages shared data containers in a set of mass storage devices.
Solid state drives (SSDs) are becoming popular for data storage since they provide high bandwidth and low latency. One upcoming protocol used for SSDs is the Non-Volatile memory Express (NVMe) protocol (or specification) to transport data over different media types. NVMe commonly uses the Peripheral Component Interconnect Express (“PCIe”) protocol as the transport medium.
“NVMe over fabrics” has been developed to enable NVMe message-based commands to transfer data between a host computer and a target solid-state storage device or system over a network such as Ethernet, Fibre Channel (FC), InfiniBand and others. However, these networks increase latency and often reduce throughput when compared with PCIe.
Computing applications are struggling to effectively use the high bandwidth and low latency of NVMe storage appliances. Applications outside of an NVMe fabric that has a plurality of NVMe devices may experience bottlenecks because network throughput is not fast enough to accommodate the low latency and performance of the NVMe devices. To accommodate the high throughput of NVMe storage, users may have to move to storage which is directly attached to each computing node, which is more costly and not suitable for applications that require many computing nodes to share access the same data. Customers may also be underutilizing NVMe storage shelves with a plurality of NVMe storage devices. Continuous efforts are being made to better utilize storage resources while providing cost-effective computing abilities.